﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using DevComponents.DotNetBar;
using Table_Dal;
using System.Collections;
using BLL;
namespace ApplicationLayer
{
    public partial class frmGiaiThuatGEN : DevComponents.DotNetBar.OfficeForm
    {
        public frmGiaiThuatGEN()
        {
            InitializeComponent();
        }
        YeuCauDeThi_GiaiThuatTbl DeThi_GT; //các yêu cầu của đề thi (tỉ lệ độ khó của đề bài)
        MonHoc_GiaiThuatTbl Mon_GT;        //các yêu cầu của đề thi (môn)
        List<Chuong_GiaiThuatTbl> ArrChuong_GT; //các yêu cầu của đề thi (các chương và % kiến thức)
        bool GTTuDong = false;                  // = false nếu làm giải thuật GEN "từng bước" || = true nếu giải thuật GEN "Tự Động"
        public frmGiaiThuatGEN(YeuCauDeThi_GiaiThuatTbl dethi_gt, MonHoc_GiaiThuatTbl mon_gt, List<Chuong_GiaiThuatTbl> ArrChuong, bool giaithuat)
        {
            GTTuDong = giaithuat;
            DeThi_GT = new YeuCauDeThi_GiaiThuatTbl();
            Mon_GT = new MonHoc_GiaiThuatTbl();
            ArrChuong_GT = new List<Chuong_GiaiThuatTbl>();
            DeThi_GT = dethi_gt;
            Mon_GT = mon_gt;
            ArrChuong_GT = ArrChuong;
            InitializeComponent();
        }
        List<CauHoi_GiaiThuatTbl> lstQuanThe;
        private void frmGiaiThuatGEN_Load(object sender, EventArgs e)
        {
            btnDotBien.Enabled = false;
            btnDoThichNghi.Enabled = false;
            btnGhepCap.Enabled = false;
            btnLaiGhep.Enabled = false;
            if (GTTuDong == false)
            {
                pageSlider.SelectedPage = pageQuanThe;
                btnKhoiTao.Enabled = true;
                btnKetQua.Enabled = false;
            }
            else
            {
                pageSlider.SelectedPage = pageKetQua;
                btnKhoiTao.Enabled = false;
                btnKetQua.Enabled = true;
            }
        }

        private void btnKhoiTao_Click(object sender, EventArgs e)
        {
            KhoiTaoQuanThe();
            dgvQuanThe.DataSource = lstQuanThe;
            dgvQuanThe.Columns["NoiDung"].Width = 600;
            dgvQuanThe.Columns[0].Visible = false;
            for (int i = 5; i < 17; i++)
            {
                dgvQuanThe.Columns[i].Visible = false;
            }
            pageSlider.SelectedPage = pageQuanThe;
            btnKhoiTao.Enabled = false;
            btnGhepCap.Enabled = true;
            int count_RK = 0;
            int count_K = 0;
            int count_V = 0;
            int count_D = 0;
            int count_RD = 0;
            foreach (CauHoi_GiaiThuatTbl item in lstQuanThe)
            {
                if (item.DoKho == 1)
                    count_RD++;
                if(item.DoKho == 2)
                    count_D++;
                if (item.DoKho == 3)
                    count_V++;
                if (item.DoKho == 4)
                    count_K++;
                if (item.DoKho == 5)
                    count_RK++;
            }
            lblTongSoCau.Text = "Tổng số câu : " + lstQuanThe.Count;
            lblDoKho_RK.Text = "Rất Khó : " + count_RK + " câu";
            lblDoKho_K.Text = "Khó        : " + count_K + " câu";
            lblDoKho_Vua.Text = "Vừa        : " + count_V + " câu";
            lblDoKho_D.Text = "Dễ          : " + count_D + " câu";
            lblDoKho_RD.Text = "Rất Dễ   : " + count_RD +" câu";
            dgvQuanThe.ReadOnly = true;
        }

        private void KhoiTaoQuanThe()
        {
            CauHoiBll chbll;
            lstQuanThe = new List<CauHoi_GiaiThuatTbl>();
            foreach (Chuong_GiaiThuatTbl item in ArrChuong_GT)
            {
                chbll = new CauHoiBll();
                List<CauHoiTbl> lst = new List<CauHoiTbl>();
                lst = chbll.LayDanhSachCauHoi_MaChuong_DoKho_MaMon(item.MaChuong, "0", Mon_GT.MaMonHoc);
                foreach (CauHoiTbl chtbl in lst)
                {
                    CauHoi_GiaiThuatTbl ch = new CauHoi_GiaiThuatTbl(chtbl.MaCauHoi, chtbl.NoiDung, chtbl.ThoiGian, chtbl.DoKho, item.MaChuong);
                    lstQuanThe.Add(ch);
                }
            }
        }

        private void btnGhepCap_Click(object sender, EventArgs e)
        {
            
            GhepCap();
            pageSlider.SelectedPage = pageGhepCap;
            btnGhepCap.Enabled = false;
            btnLaiGhep.Enabled = true;
        }
        private void GhepCap()
        {
            throw new NotImplementedException();
        }

        private void btnLaiGhep_Click(object sender, EventArgs e)
        {
            pageSlider.SelectedPage = pageLaiGhep;
            btnLaiGhep.Enabled = false;
            btnDotBien.Enabled = true;
        }

        private void btnDotBien_Click(object sender, EventArgs e)
        {
            pageSlider.SelectedPage = pageDotBien;
            btnDotBien.Enabled = false;
            btnDoThichNghi.Enabled = true;
        }

        private void btnDoThichNghi_Click(object sender, EventArgs e)
        {
            pageSlider.SelectedPage = pageDoThichNghi;
            btnDoThichNghi.Enabled = false;
            btnKetQua.Enabled = true;
        }

        private void btnKetQua_Click(object sender, EventArgs e)
        {
            pageSlider.SelectedPage = pageKetQua;
            btnKetQua.Enabled = false;
            
        }

    }
}